@@ -2,3 +2,7 @@ |
||
2 | 2 |
#= require ace/mode-javascript.js |
3 | 3 |
#= require ace/mode-markdown.js |
4 | 4 |
#= require ace/mode-coffee.js |
5 |
+#= require ace/mode-sql.js |
|
6 |
+#= require ace/mode-json.js |
|
7 |
+#= require ace/mode-yaml.js |
|
8 |
+#= require ace/mode-text.js |
@@ -177,20 +177,28 @@ class @AgentEditPage |
||
177 | 177 |
buildAce: -> |
178 | 178 |
$(".ace-editor").each -> |
179 | 179 |
unless $(this).data('initialized') |
180 |
- $(this).data('initialized', true) |
|
181 |
- $source = $($(this).data('source')).hide() |
|
180 |
+ $this = $(this) |
|
181 |
+ $this.data('initialized', true) |
|
182 |
+ $source = $($this.data('source')).hide() |
|
182 | 183 |
editor = ace.edit(this) |
183 |
- $(this).data('ace-editor', editor) |
|
184 |
+ $this.data('ace-editor', editor) |
|
184 | 185 |
session = editor.getSession() |
185 | 186 |
session.setTabSize(2) |
186 | 187 |
session.setUseSoftTabs(true) |
187 | 188 |
session.setUseWrapMode(false) |
188 | 189 |
|
189 | 190 |
setSyntax = -> |
190 |
- switch $("[name='agent[options][language]']").val() |
|
191 |
- when 'JavaScript' then session.setMode("ace/mode/javascript") |
|
192 |
- when 'CoffeeScript' then session.setMode("ace/mode/coffee") |
|
193 |
- else session.setMode("ace/mode/text") |
|
191 |
+ if mode = $this.data('mode') |
|
192 |
+ session.setMode("ace/mode/" + mode) |
|
193 |
+ |
|
194 |
+ if theme = $this.data('theme') |
|
195 |
+ editor.setTheme("ace/theme/" + theme); |
|
196 |
+ |
|
197 |
+ if mode = $("[name='agent[options][language]']").val() |
|
198 |
+ switch mode |
|
199 |
+ when 'JavaScript' then session.setMode("ace/mode/javascript") |
|
200 |
+ when 'CoffeeScript' then session.setMode("ace/mode/coffee") |
|
201 |
+ else session.setMode("ace/mode/" + mode) |
|
194 | 202 |
|
195 | 203 |
$("[name='agent[options][language]']").on 'change', setSyntax |
196 | 204 |
setSyntax() |
@@ -23,7 +23,9 @@ class FormConfigurableAgentPresenter < Decorator |
||
23 | 23 |
@view.content_tag 'div' do |
24 | 24 |
@view.concat @view.text_area_tag("agent[options][#{attribute}]", value, html_options.merge(class: 'form-control', rows: 3)) |
25 | 25 |
if data[:ace].present? |
26 |
- @view.concat @view.content_tag('div', '', class: 'ace-editor', data: { source: "[name='agent[options][#{attribute}]']" }) |
|
26 |
+ ace_options = { source: "[name='agent[options][#{attribute}]']", mode: '', theme: ''}.deep_symbolize_keys! |
|
27 |
+ ace_options.deep_merge!(data[:ace].deep_symbolize_keys) if data[:ace].is_a?(Hash) |
|
28 |
+ @view.concat @view.content_tag('div', '', class: 'ace-editor', data: ace_options) |
|
27 | 29 |
end |
28 | 30 |
end |
29 | 31 |
when :boolean |